package com.azxmall.common.framework.redis.template;

import java.util.List;

/**
 * 二次封装 RedisTemplate Interface
 * 以后根据需要可重新自定义
 * @author Dustyone
 *
 * AzxmallInit
 */
public interface RedisService {
	/**
	 * PUT K-V
	 * @param key
	 * @param value
	 * @return
	 */
	public boolean set(String key, String value);

	/**
	 * Get Object By Key
	 * @param key
	 * @return
	 */
	public Object get(String key);
	
	/**
	 * Setting key expire Time
	 * 以秒为单位
	 * @param key
	 * @param expire
	 * @return
	 */
	public boolean expire(String key, long expire);

	/**
	 * PUT K-LIST
	 * @param key
	 * @param list
	 * @return
	 */
	public <T> boolean setList(String key, List<T> list);

	/**
	 * GET K-LIST
	 * @param key
	 * @param clz
	 * @return
	 */
	public <T> List<T> getList(String key, Class<T> clz);

	/**
	 * 将所有指定的值插入到存于 key 的列表的头部
	 * PUT K-O
	 * @param key
	 * @param obj
	 * @return
	 */
	public long setObject(String key, Object obj);
	
	/**
	 * 重复添加指定Key中的指定元素
	 * @param key
	 * @param obj
	 * @return
	 */
	public long getObject(String key, Object obj);
	
}
